This invention relates to seismic exploration, and more particularly relates to processing of seismic data on multiprocessor computers.
Conventional land or marine seismic acquisition techniques involve the use of an appropriate source (or sources) to generate seismic energy and a set of receivers, spread out upon or near the surface of the earth on land, or near the water surface or water bottom in a water-covered area, to detect any reflected seismic signals due to seismic energy striking subsurface geologic boundaries. In simplistic terms, this seismic acquisition process has a seismic wave, from a source of seismic energy, travelling down into the earth, reflecting from a particular geologic interface (i.e. a change or contrast in elastic constants and/or densities) and returning to the surface, where it may be detected by appropriate receivers. These seismic signals are recorded in time, and subsequent processing of these signals, i.e. seismic "traces" or seismic data, is designed to reconstruct an appropriate image of the geologic boundaries of the subsurface and to obtain information about the subsurface materials.
One important seismic processing technique to provide this subsurface image is called migration. In general terms, seismic migration takes a set of seismic data (the seismic traces) measured at or near the surface of the earth (or water), and produces a representation of the subsurface of the earth. Generally, seismic processing techniques which perform migration are based on solving some form of a propagation or wave equation (which describes the propagation of seismic waves in the subsurface), or an approximation thereof.
There are several main types of migration processing techniques; one type is called Kirchloff migration, which approximates the evaluation of the so-called Kirchhoff integral solution to the wave equation. Kirchhoff migration techniques generally work by producing an output seismic trace (usually sampled in depth or 2-way vertical traveltime) by (1) performing a local interpolation on each input trace that falls within some determined neighborhood of a desired output trace location (herein referred to as an "output subpoint"), and (2) summing the interpolated traces within that neighborhood to provide the output trace for that output subpoint. This neighborhood is called the "migration operator." The size and shape of the migration operator may be fixed or may vary from output subpoint to output subpoint. Proper specification of an operator may be very complicated due to such considerations as aliasing, source/receiver geometry, the seismic velocity function, and the dips of reflection events. In the case of two-dimensional (2-D) migration, the sum of the left and right extremes of the operator is termed the operator "width." Typically, Kirchhoff migration operator widths range from 2 to 10 miles, so many input traces contribute to each output trace, and conversely, an input trace contributes to many output traces.
Various types of computers may be employed to process the seismic data and compute various outputs to form an approximated image of the subsurface and to provide related information about subsurface materials. The amount of seismic data to be processed by a computer may vary considerably. For example, a moderately sized 3-D marine seismic survey of a 12 mile by 7 mile rectangle would typically consist of about 2800 miles or more of data. It would take about 3 weeks to acquire this data.
It is estimated that it would take about 4 weeks to 2-D "stack"-migrate such a survey on a Unisys plus an array processor, that is to migrate the data after it is "stacked" via common midpoint techniques or other such techniques. In a similar manner, it is estimated that it would take about 4.3 years to "points"-migrate this survey in a 2-D manner on a Unisys plus an array processor, that is to migrate the date before it is "stacked"; migration before stacking involves migration of all the recorded seismic traces, rather than migration of a reduced volume of averaged or stacked seismic traces, when stacked data is employed. The time for a 3-D points migration of this survey on a Univac plus an array processor is estimated to be about 1,000 years. The time to perform a 3-D points migration of this survey on a Cray X-MP/14 is estimated to be about 20 years.
Thus, it can be seen that it takes an inordinate amount of time and cost to migrate moderate amounts of seismic data even with today's supercomputers. Seismic migration utilizes a large amount of computer resources, even though its computations are simple, because of the large numbers of computations and data flow required. Accordingly, unless the time and cost to perform seismic migration is reduced, such techniques will be used infrequently. Thus, faster computers are needed to reduce such migration times.
However, the computer industry is finding it increasingly difficult to make fast computers run even faster. The rate of increase, in the increase of speed, of the fastest electronic circuits and components is declining. The fastest general-purpose supercomputers today have theoretical maximum speeds in the range of 200-2000 million floating point operations per second (MFLOPS), but on typical computational problems they achieve only ten or twenty percent of their theoretical speed. It is unlikely that supercomputers built in the current, traditional way will more than double in speed by the 1990's.
One way to get faster processing speed without faster components is to use concurrency of one kind or another. This has led to the design and construction of various kinds of multiprocessor or "parallel" computers. There is some disagreement about the most effective way of obtaining concurrency for such parallel computers, i.e. how best to connect the processors of such a parallel computer together, as well as how many processors and of what type to employ. Some of the companies that currently build supercomputers are building large-grain parallel computers, i.e. those with relatively small numbers of very fast and powerful processors. Other parallel computers are medium-grain machines, i.e. employing a large number (hundreds to a few thousands) of relatively slow processors that are somehow connected together, or fine-grain machines, i.e. employing thousands or more of very simple, slow processors that are somehow connected together. Such medium-grain machine processors may be any type of processor, but are typically microprocessors.
Microprocessors are still experiencing a rapid increase in their speeds of execution, both for floating point operations and other instructions; the performance rate for these other instructions is usually measured in millions of instructions per second (MIPS). In a similar manner, the capacity of semiconductor memory chips is increasing rapidly while their cost is decreasing rapidly, to provide more and cheaper memory for such microprocessors.
Thus, the medium- to fine-grain parallel computer approach is especially promising, since it reasonably may be expected that the rapid rate of progress being made today in microprocessor technology and memory chips will continue for at least another decade. This is in sharp contrast to the expected slower rate of progress regarding the speeding up of the highest-speed electronic components.
For a medium-grain parallel machine, each microprocessor may be capable of executing its own program independently of the others and may have large floating-point processing power. Further, each microprocessor may be linked to a selected subset of the others via serial communication lines. The linkage between such microprocessors may be such that the communication lines constitute the edges of an n-dimensional "hypercube" with the microprocessors as the vertices. Data exchange between such microprocessors is regulated by the programs running in the microprocessors in question. Currently, fine-grain parallel machines do not have large floating-point processing power nor do all the processors operate independently, although they may be interconnected to form a hypercube.
"Hypercubes" of various dimension are defined as follows. A zero-dimensional hypercube consists of a single node labelled with a zero. For n&gt;zero, an n-dimensional hypercube is formed from two (n-1)-dimensional hypercubes, by connecting each node in one to the correspondingly labelled node in the other with a communication path "along the n-th dimension," and then re-labelling all the nodes in one of the two (n-1)-dimensional hypercubes by adding 2.sup.(n-1) to each of its labels. Thus, an n-dimensional hypercube has 2.sup.n nodes, each of which is connected to another node along each of n dimensions; the nodes are labelled from 0 through 2.sup.n -1.
In a 10-dimensional (10-D) hypercube multiprocessor computer each processor or node is connected via 10 communication paths to 10 other nodes; such communication paths may employ full-duplex ports. Other node ports may be connected to a global broadcast bus or other I/O channels or devices. An I/O port of each node may be able to accept data that is broadcast over such a global bus, as well as carry on a full-duplex exchange of data with one or more of the other nodes of the hypercube at the same time.
A hypercube system and disks may be controlled by a host computer that contains its own multi-user, multi-tasking operating system. The host computer may be responsible for loading the hypercube programs and management of the hypercube resources. In order to execute a program on the hypercube, a user initiates execution of his host program, which in turn causes the node programs to be loaded onto the appropriate processing nodes. A program, having been loaded onto a processing node, begins execution under that node's own control. Messages passed between the processors and the host program may provide input-output data or additional control.
A hypercube system may also have a high-speed graphics subsystem that allows data residing on the host or in the hypercube nodes to be displayed on an attached high-resolution, color-graphics screen. A multichannel high-speed input-output device that will allow attachment to combinations of tape, external disk, high-speed data communications channel, or satellite computer may be used to provide direct input-output with the hypercube processor nodes.
However, if a hypercube machine, or any other type of medium-to fine-grain parallel machine, is to be used to Kirchhoff-migrate seismic data with the expectation of short execution times, it is not clear how to program such a machine to achieve this effect. Thus, there is an unmet need for methods for Kirchhoff-migrating seismic data on parallel machines, and on hypercube machines in particular.
These and other limitations and disadvantages are overcome by the present invention, however, and new economical methods are provided for quickly Kirchhoff-migrating seismic data using parallel machines.